{
/* make node a left child */
node = p;
+ gtk_rb_node_rotate_left (tree, node);
p = parent (node);
pp = parent (p);
- gtk_rb_node_rotate_left (tree, node);
}
/* recolor and rotate */
set_black (p);
if (node == p->left)
{
node = p;
+ gtk_rb_node_rotate_right (tree, node);
p = parent (node);
pp = parent (p);
- gtk_rb_node_rotate_right (tree, node);
}
set_black (p);
set_red (pp);
gtk_rb_tree_unref (tree);
}
+static void
+test_crash2 (void)
+{
+ GtkRbTree *tree;
+
+ tree = gtk_rb_tree_new (Node, Aug, augment, NULL, NULL);
+
+ add (tree, 0);
+ add (tree, 0);
+ add (tree, 1);
+
+ gtk_rb_tree_unref (tree);
+}
+
int
main (int argc, char *argv[])
{
setlocale (LC_ALL, "C");
g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=%s");
- g_test_add_func ("/csrbtree/crash", test_crash);
+ g_test_add_func ("/rbtree/crash", test_crash);
+ g_test_add_func ("/rbtree/crash2", test_crash2);
return g_test_run ();
}